#pragma once
#include "IGameState.h"
#include "Buttons.h"
#include <vector>
#include "../SGD Wrappers/SGD_String.h"
#include "../SGD Wrappers/SGD_AudioManager.h"

class OptionsState : public IGameState
{
public:
	static OptionsState* GetInstance();

	void	Enter();
	void	Exit();
	void	Update(float dt);
	void	Render();
	bool	Input();

private:
	OptionsState() = default;
	~OptionsState() = default;

	OptionsState(const OptionsState&) = delete;
	OptionsState operator = (const OptionsState&) = delete;

	int				m_nCursor;
	unsigned int	m_nNumItems;
	float			m_fTimer;
	bool			m_bFullScreen;
	std::vector<SGD::String> m_szItems;

	Buttons m_arrButtons[2];

	SGD::HAudio		m_haBackground = SGD::INVALID_HANDLE;
	SGD::HAudio		m_haSFX		   = SGD::INVALID_HANDLE;
	int m_nMusicVolume;
	int m_SFXVolume;

	SGD::HTexture	m_hBackgroundImage = SGD::INVALID_HANDLE;
};